1. Field of the Invention
The present invention relates to a technique for digitally encoding a signal, in particular but not exclusively a speech signal, in view of transmitting and synthesizing this signal. More specifically, the present invention is concerned with a method for indexing the pulse positions and amplitudes of non-zero-amplitude pulses, in particular but not exclusively in very large algebraic codebooks needed for high-quality coding of wideband signals based on Algebraic Code Excited Linear Prediction (ACELP) techniques.
2. Brief Description of the Current Technology
The demand for efficient digital wideband speech/audio encoding techniques with a good subjective quality/bit rate trade-off is increasing for numerous applications such as audio/video teleconferencing, multimedia, and wireless applications, as well as internet and packet network applications. Until recently, telephone bandwidths filtered in the range 200-3400 Hz were mainly used in speech coding applications. However, there is an increasing demand for wideband speech applications in order to increase the intelligibility and naturalness of the speech signals. A bandwidth in the range 50-7000 Hz was found sufficient for delivering a face-to-face speech quality. For audio signals, this range gives an acceptable audio quality, but is still lower than the CD (Compact Disk) quality which operates in the range 20-20000 Hz.
A speech encoder converts a speech signal into a digital bitstream which is transmitted over a communication channel (or stored in a storage medium). The speech signal is digitized (sampled and quantized with usually 16-bits per sample) and the speech encoder has the role of representing these digital samples with a smaller number of bits while maintaining a good subjective speech quality. The speech decoder or synthesizer operates on the transmitted or stored bitstream and converts it back to a sound signal.
One of the best prior art techniques capable of achieving a good quality/bit rate trade-off is the so-called CELP (Code Excited Linear Prediction) technique. According to this technique, the sampled speech signal is processed in successive blocks of L samples usually called frames where L is some predetermined number (corresponding to 10-30 ms of speech). In CELP, a LP (Linear Prediction) synthesis filter is computed and transmitted every frame. The L-sample frame is then divided into smaller blocks called subframes of size N samples, where L=kN and k is the number of subframes in a frame (N usually corresponds to 4-10 ms of speech). An excitation signal is determined in each subframe, which usually consists of two components: one from the past excitation (also called pitch contribution or adaptive codebook) and the other from an innovative codebook (also called fixed codebook). This excitation signal is transmitted and used at the decoder as the input of the LP synthesis filter in order to obtain the synthesized speech.
To synthesize speech according to the CELP technique, each block of N samples is synthesized by filtering an appropriate codevector from the innovation codebook through time-varying filters modeling the spectral characteristics of the speech signal. These filters consist of a pitch synthesis filter (usually implemented as an adaptive codebook containing the past excitation signal) and an LP synthesis filter. At the encoder end, the synthesis output is computed for all, or a subset, of the codevectors from the codebook (codebook search). The retained codevector is the one producing the synthesis output closest to the original speech signal according to a perceptually weighted distortion measure. This perceptual weighting is performed using a so-called perceptual weighting filter, which is usually derived from the LP synthesis filter.
An innovative codebook in the CELP context, is an indexed set of N-sample-long sequences which will be referred to as N-dimensional codevectors. Each codebook sequence is indexed by an integer k ranging from 1 to M where M represents the size of the codebook often expressed as a number of bits b, where M=2b.
A codebook can be stored in a physical memory, e.g. a look-up table (stochastic codebook), or can refer to a mechanism for relating the index to a corresponding codevector, e.g. a formula (algebraic codebook).
A drawback of the first type of codebooks, stochastic codebooks, is that they often involve substantial physical storage. They are stochastic, i.e. random in the sense that the path from the index to the associated codevector involves look-up tables which are the result of randomly generated numbers or statistical techniques applied to large speech training sets. The size of stochastic codebooks tends to be limited by storage and/or search complexity.
The second type of codebooks are the algebraic codebooks. By contrast with the stochastic codebooks, algebraic codebooks are not random and require no substantial storage. An algebraic codebook is a set of indexed codevectors of which the amplitudes and positions of the pulses of the kth codevector can be derived from a corresponding index k through a rule requiring no, or minimal, physical storage. Therefore, the size of algebraic codebooks is not limited by storage requirements. Algebraic codebooks can also be designed for efficient search.
The CELP model has been very successful in encoding telephone band sound signals, and several CELP-based standards exist in a wide range of applications, especially in digital cellular applications. In the telephone band, the sound signal is band-limited to 200-3400 Hz and sampled at 8000 samples/sec. In wideband speech/audio applications, the sound signal is band-limited to 50-7000 Hz and sampled at 16000 samples/sec.
Some difficulties arise when applying the telephone band optimized CELP model to wideband signals, and additional features need to be added to the model in order to obtain high quality wideband signals. These features include efficient perceptual weighting filtering, varying bandwith pitch filtering, and efficient gain smoothing and pitch enhancement techniques. An other important issue that arise in coding wideband signals is the need to use very large excitation codebooks. Therefore, efficient codebook structures that require minimal storage and can be rapidly searched become very important. Algebraic codebooks have been known for their efficiciency and are now widely used in various speech coding standards. Algebraic codebooks and related fast search procedures are described in U.S. Pat. No. 5,444,816 (Adoul et al.) issued on Aug. 22, 1995; U.S. Pat. No. 5,699,482 granted to Adoul et al., on Dec. 17, 1997; U.S. Pat. No. 5,754,976 granted to Adoul et al., on May 19, 1998; and U.S. Pat. No. 5,701,392 (Adoul et al.) dated Dec. 23, 1997.